package com.xiaoba.shoppingcart.service;

import java.util.List;

import com.xiaoba.common.core.domain.Result;
import com.xiaoba.shoppingcart.domain.Cart;

/**
 * 购物车Service接口
 *
 * @author gd
 * @date 2024-06-07
 */
public interface ICartService
{
    /**
     * 查询购物车
     *
     * @param shoppingcartId 购物车主键
     * @return 购物车
     */
    public Cart selectCartByShoppingcartId(Long shoppingcartId);

    /**
     * 查询购物车列表
     *
     * @param cart 购物车
     * @return 购物车集合
     */
    public List<Cart> selectCartList(Cart cart);

    /**
     * 新增购物车
     *
     * @param cart 购物车
     * @return 结果
     */
    public int insertCart(Cart cart);

    /**
     * 修改购物车
     *
     * @param cart 购物车
     * @return 结果
     */
    public int updateCart(Cart cart);

    /**
     * 批量删除购物车
     *
     * @param shoppingcartIds 需要删除的购物车主键集合
     * @return 结果
     */
    public int deleteCartByShoppingcartIds(Long[] shoppingcartIds);

    /**
     * 删除购物车信息
     *
     * @param shoppingcartId 购物车主键
     * @return 结果
     */
    public int deleteCartByShoppingcartId(Long shoppingcartId);

    /**
     * 根据用户id检查有没有购物车对象
     * 1.1.1 如果有返回购物车对象
     *  1.1.2 如果没有 添加购物车表   skuId  count
     *      1.1.2.1 添加完购物车表获取 购物车表id
     * 1.2 根据购物车id添加购物明细
     *  1.2.1 判断购物车明细有没有  skuId cardId
     *  1.2.2 如果有    数量+count
     *  1.2.3 如果没有 新增
     */
    public void addCart(Long skuId, Integer num);

    Result updateStatusToCart(Long shoppingcartId);
}
